package cn.bmbanjia.zebra2024.apps.base.order.entity;

import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.sql.Timestamp;

/**
 * 实体类。
 *
 * @author fugui
 * @since 2024-08-03
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("bm_order")
public class Order {

    @Id
    private String id;

    private String addressFrom;

    private String addressTo;

    private Integer captainUserId;

    private String customer;

    private Integer distance;

    private Integer productId;

    private Integer status;

    private String telephone;

    private Double totalPrice;

    private String userItems;

    private String createTime;

    private String moveTime;

    private String region;

    private String creator;

    private Integer creatorUserId;

    private Double payAmount;

    private String addedServices;

    private Integer fromElevator;

    private Integer fromFloor;

    private Integer toElevator;

    private Integer toFloor;

    private Double discountAmount;

    private Double driverCost;

    private String remark;

    private String source;

    private Double otherAmount;

    private Double prePay;

    private Integer agencyId;

    private Integer customerId;

    private String openid;

    private Integer settleTime;

    private Boolean settlemenStatus;

    private Double totalCost;

    private Double addressFromLng;

    private Double addressFromLat;

    private Double addressToLng;

    private Double addressToLat;

    private Integer cityCode;

    private Double kmPrice;

    private Double floorPrice;

    private Boolean carry;

    private Double productPrice;

    private Double couponPrice;

    private Boolean feedback;

    private Double finalPayment;

    private Boolean schedule;

    private Double addedServicesPrice;

    private Boolean cancelAfterVerification;

    private Integer cancelAfterVerificationTime;

    private Integer laddieNumber;

    private Integer driverNumber;

    private Integer completeTime;

    private Integer updateTime;

    private String updateUserName;

    private Integer updateUserId;

    private String driverCostRemark;

    private Integer cityType;

    /**
     * 责任人
     */
    private String responsible;

    /**
     * 责任人_id
     */
    private Integer responsibleId;

    /**
     * 取消类型
     */
    private Integer cancelType;

    /**
     * 取消备注
     */
    private String cancelRemark;

    /**
     * 小哥备注
     */
    private String laddieRemark;

    /**
     * 费用开关
     */
    private Boolean costSwitch;

    /**
     * 订单节点状态
     */
    private Integer nodeStatus;

    /**
     * 系统自动派单状态
     */
    private Boolean systemAutoSendOrderSwitch;

    /**
     * 订单取消时间
     */
    private Integer cancelTime;

    /**
     * 红包返现
     */
    private Double redPacketCost;

    /**
     * 售后
     */
    private Double afterSaleCost;

    /**
     * 代理佣金
     */
    private Double agencyCommissionCost;

    /**
     * 小哥好评
     */
    private Double laddieGoodCost;

    /**
     * 小哥推荐
     */
    private Double laddieRecommendCost;

    /**
     * 小哥成本
     */
    private Double laddieCost;

    /**
     * 下单路径
     */
    private Integer placeAnOrderType;

    /**
     * 亏损金额
     */
    private Double profit;

    /**
     * 现场联系人手机号
     */
    private String linkmanPhone;

    /**
     * 现场联系人姓名
     */
    private String linkmanName;

    /**
     * 客户备注
     */
    private String customerRemark;

    /**
     * 应付定金
     */
    private Double shouldPayDeposit;

    /**
     * 应付尾款
     */
    private Double shouldPayFinalPayment;

    private Double kmPriceDesc;

    private Double floorPriceDesc;

    /**
     * 收款码
     */
    private Boolean payQrcode;

    private String dispatchRemark;

    /**
     * 已开票金额
     */
    private Double invoiceAmount;

    private String agencyCode;

    private Integer cancelAfterVerificationUserId;

    private String cancelAfterVerificationUserName;

    private Integer settlemenUserId;

    private String settlemenUserName;

    private Integer sourceType;

    private Boolean recommendStorage;

    private String recommendStorageRemark;

    private Integer recommendStorageType;

    private Integer score;

    private Integer acceptanceId;

    private String wechatMiniAppSourceAgencyCode;

    private Integer laddieTotalCost;

    /**
     * 供应商抵扣不计算利润
     */
    private Double supplierExtra;

    /**
     * 供应商利润
     */
    private Double supplierProfit;

    private Double supplierMoney;

    private Timestamp lockTime;

    private Integer lockUserId;

    private String lockUserName;

    /**
     * 返现时间
     */
    private Timestamp returnCashTime;

    private String returnCashUser;

    private Integer returnCashUserId;

}
